home *** CD-ROM | disk | FTP | other *** search
/ AMIGA-CD 2 / Amiga-CD - Volume 2.iso / ungepackte_daten / 1992 / 09 / 2 / window-machine / wm_source.ampk / WM_Source1.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-06-01  |  12.8 KB  |  810 lines

  1. #include <WM.h>
  2. #include <MS.h>
  3. #include <MyStructs.h>
  4.  
  5. USHORT MakeSource()
  6. {
  7.     USHORT quit=FALSE,OK=FALSE;
  8.     ScreenToFront(WMsc);
  9.     for(j=0; j<7; j++)
  10.     {
  11.         MSGad[j].Flags=NULL;
  12.         if(Erlaubt & Potenz[j]) MSGad[j].Flags=SELECTED;
  13.     }
  14.     HEADERInfo.DispPos=0;
  15.     MSWindow.Screen=WMsc;
  16.     if(!(Wwin=(struct Window *)OpenWindow(&MSWindow))) return(1);
  17.     Wrp=Wwin->RPort;
  18.     WinBorder(Wwin);
  19.     PrintIText(Wrp,&MSText[9],0,0);
  20.     i=6;
  21.     if(CodeArt) i=110;
  22.     SetDrMd(Wrp,JAM1|COMPLEMENT);
  23.     RectFill(Wrp,i,80,i+97,93);
  24.     
  25.     do
  26.     {
  27.         Wait(1L << Wwin->UserPort->mp_SigBit);
  28.         GetMessage(Wwin);
  29.         switch(class)
  30.         {
  31.             case GADGETDOWN:
  32.             if(Id==9)
  33.             {
  34.                 if(CodeArt)
  35.                 {
  36.                     MarkMode();
  37.                     CodeArt=0;
  38.                 }
  39.                 break;
  40.             }
  41.             if(Id==10)
  42.             {
  43.                 if(CodeArt==0)
  44.                 {
  45.                     MarkMode();
  46.                     CodeArt=1;
  47.                 }
  48.                 break;
  49.             }
  50.             break;
  51.             case GADGETUP:
  52.             switch(Id)
  53.             {
  54.                 case 0: quit=TRUE;
  55.                     break;
  56.                 
  57.                 /* File-Name */
  58.                 case 11: break;
  59.                 case 12: OK=TRUE;
  60.                     quit=TRUE;
  61.                     break;
  62.             } /* switch Id */
  63.             if(Id>0 && Id<8)
  64.                 Erlaubt^=Potenz[Id-1];
  65.             break;
  66.         } /* switch class */
  67.     } while(quit==FALSE); /* do */
  68.     CloseWindow(Wwin);
  69.     if(OK==TRUE)
  70.     {
  71.         if(strlen(HEADERBuff)>0 && Erlaubt >0 )
  72.         {
  73.             Work();
  74.             if(WriteSource())
  75.             {
  76.                 if(Datei) Close(Datei);
  77.                 Datei=NULL;
  78.                 Ready();
  79.                 Error(1,0,1);
  80.             }
  81.             else Ready();
  82.         }
  83.     }
  84.     ScreenToFront(sc);
  85.     return(0);
  86. }
  87. VOID MarkMode()
  88. {
  89.     SetDrMd(Wrp,JAM1|COMPLEMENT);
  90.     RectFill(Wrp,110,80,207,93);
  91.     RectFill(Wrp,6,80,103,93);
  92. }
  93. USHORT WriteSource()
  94. {
  95.     for(i=0; i<32; i++) ZS[i]=0;
  96.     SC=0;
  97.     WI=0;
  98.     TX=0;
  99.     TXL=0;
  100.     ZSN=0;
  101.     GD=0;
  102.     BO=0;
  103.     IM=0;
  104.     MU=0;
  105.     MI=0;
  106.     SU=0;
  107.     GDL=0;
  108.     BOL=0;
  109.     IML=0;
  110.     MUL=0;
  111.     RQ=0;
  112.     RSQ=0;
  113.     AL=0;
  114.     BM=0;
  115.     PT=0;
  116.     NT=0;
  117.     SType=0;
  118.     CodeSize=0;
  119.     if(!(Datei=Open(HEADERBuff,MODE_NEWFILE))) return(1);
  120.     strcpy(Buffer,"");
  121.     Undo=0;
  122.     CheckUndo(noscW);
  123.     if(firstS)
  124.     {
  125.         helpS=firstS;
  126.         while(helpS)
  127.         {
  128.             if(helpS->FirstWindow) CheckUndo(helpS->FirstWindow);
  129.             helpS=helpS->NextScreen;
  130.         }
  131.     }
  132. /************************************************************************
  133. *        C und Assembler --- UNDOBUFFER ---            *
  134. ************************************************************************/
  135.     if(Undo)
  136.     {
  137.         StrEnd=1;
  138.         if(CodeArt==0) sprintf(Buffer,"%s",CType[3]);
  139.         InBuff(GACTIV1[13]);
  140.         if(CodeArt)
  141.         {
  142.             DPunkt();
  143.             AssT(4);
  144.             sprintf(LEER,"%d%s%s%s",Undo,ZCode[0],ZCode[1],
  145.                     AType[3]);
  146.         }
  147.         else sprintf(LEER,"[%d];",Undo);
  148.         BuffLeer();
  149.         if(DSave()) return(1);
  150.     }
  151.     helpW=noscW;
  152.     if(helpW!=NULL && (Erlaubt & 64)!=0)
  153.     {
  154.         if(PaletteSource(WMColors,4)) return(1);
  155.     }
  156.     if(WindowSource()) return(1);
  157.     helpS=firstS;
  158.     while(helpS)
  159.     {
  160.         SType=0;
  161.         if((helpS->Type & 15)==15) SType++;
  162.         if(CodeArt)
  163.         {
  164.             if(ScreenSource()) return(1);
  165.         }
  166.         if(helpS->FirstWindow)
  167.         {
  168.             helpW=helpS->FirstWindow;
  169.             if(WindowSource()) return(1);
  170.         }
  171.         if(CodeArt==0)
  172.         {
  173.             if(ScreenSource()) return(1);
  174.         }
  175.         helpS=helpS->NextScreen;
  176.     }
  177.     if(CodeArt) InBuff("; ");
  178.     else InBuff("/* ");
  179.     InBuff("Ende der Window-Maschine Strukturen");
  180.     if(CodeArt==0) InBuff(" */");
  181.     InBuff("\n\n");
  182.     if(Save()) return(1);
  183.     Close(Datei);
  184.     Datei=NULL;
  185.     return(0);
  186. }
  187.  
  188. VOID CheckUndo(struct MyWindow *w)
  189. {
  190.     while(w)
  191.     {
  192.         if(w->FirstGadget)
  193.         {
  194.             helpG=w->FirstGadget;
  195.             while(helpG)
  196.             {
  197.                 if(helpG->MaxChars > Undo && helpG->Border != 2)
  198.                     Undo=helpG->MaxChars;
  199.                 helpG=helpG->NextGadget;
  200.             }
  201.         }
  202.         w=w->NextWindow;
  203.     }
  204. }
  205.         
  206. USHORT ScreenSource()
  207. {
  208.     SC++;
  209.     if(Erlaubt & 64)
  210.     {
  211.         if(PaletteSource(helpS->ColorMap,helpS->Colors))
  212.             return(1);
  213.     }
  214.     if((Erlaubt & 1)==0) return(0);
  215.     i=0;
  216.     if(helpS->Font==2) i++;
  217.     if(helpS->Font>0 && ZS[i*16] == 0)
  218.         if(FontSource(helpS->Font,0)) return(1);
  219.     StrEnd=0;
  220.     if(CodeArt==0)
  221.     {
  222.         sprintf(Buffer,"%s%s ",STR,String[2]);
  223.     }
  224.     MakeName(helpS->Name,SC,2);
  225.     if(CStart()) return(1);
  226.     if(Word(helpS->LeftEdge,helpS->TopEdge)) return(1);
  227.     if(Word(helpS->Width,helpS->Height)) return(1);
  228.     AssT(1);
  229.     sprintf(LEER,"%d",helpS->Depth);
  230.     if(BuffKom()) return(1);
  231.     if(Byte(helpS->DetailPen,helpS->BlockPen)) return(1);
  232.     AssT(1);
  233.     j=0;
  234.     for(i=0; i<7; i++)
  235.     {
  236.         if(helpS->ViewModes & SVIEWS[i])
  237.         {
  238.             Plus();
  239.             if(CodeArt) InBuff("V_");
  240.             InBuff(SVIEWS1[i]);
  241.         }
  242.     }
  243.     if(j)
  244.     {
  245.         if(KomTab()) return(1);
  246.     }
  247.     else if(Null(1)) return(1);
  248.     AssT(1);
  249.     if((helpS->Type & 15) == 15) InBuff(SFLAGS1[1]);
  250.     else InBuff(SFLAGS1[0]);
  251.     j=1;
  252.     for(i=2; i<5; i++)
  253.     {
  254.         if(helpS->Type & SFLAGS[i])
  255.         {
  256.             Plus();
  257.             InBuff(SFLAGS1[i]);
  258.         }
  259.     }
  260.     if(KomTab()) return(1);
  261.     if(helpS->Font)
  262.     {
  263.         AssT(2);
  264.         KUnd();
  265.         sprintf(LEER,"ZS%d_0",helpS->Font);
  266.         if(BuffKom()) return(1);
  267.     }
  268.     else if(Null(1)) return(1);
  269.     if(strlen(helpS->Title))
  270.     {
  271.         AssT(2);
  272.         if(CodeArt)
  273.         {
  274.             MakeName(helpS->Name,SC,2);
  275.             InBuff(String[7]);
  276.         }
  277.         else
  278.         {
  279.             if(Compiler) InBuff(CType[2]);
  280.             SetByte(helpS->Title);
  281.         }
  282.         if(KomTab()) return(1);
  283.     }
  284.     else if(Null(1)) return(1);
  285.     if(strlen(helpS->Gadgets))
  286.     {
  287.         AssT(2);
  288.         KUnd();
  289.         sprintf(LEER,"%s",helpS->Gadgets);
  290.         if(BuffKom()) return(1);
  291.     }
  292.     else if(Null(1)) return(1);
  293.     if(strlen(helpS->BitMap))
  294.     {
  295.         AssT(2);
  296.         KUnd();
  297.         sprintf(LEER,"%s",helpS->BitMap);
  298.         BuffLeer();
  299.         if(LSave()) return(1);
  300.     }
  301.     else if(Null(0)) return(1);
  302.     if(CodeArt)
  303.     {
  304.         if(strlen(helpS->Title))
  305.         {
  306.             MakeName(helpS->Name,SC,2);
  307.             InBuff(String[7]);
  308.             Tab();
  309.             AssT(0);
  310.             SetByte(helpS->Title);
  311.             KommaNull(3);
  312.         }
  313.     }
  314.     else CEnde();
  315.     if(DSave()) return(1);
  316.     return(0);
  317. }
  318.  
  319. USHORT ExtraWin()
  320. {
  321.     if(helpW->CheckMark && CodeArt==1)
  322.     {
  323.         if(ImageSource(helpW->CheckMark,0)) return(1);
  324.     }
  325.     if(helpW->FirstGadget)
  326.     {
  327.         helpG=helpW->FirstGadget;
  328.         if(GadgetSource()) return(1);
  329.     }
  330.     if(helpW->FirstText  != NULL && (Erlaubt & 4) == 4)
  331.     {
  332.         TXL++;
  333.         if(TextSource(helpW->FirstText,1)==1) return(1);
  334.         if(CodeArt==0)
  335.         {
  336.             sprintf(Buffer,"%s%s%s%d I%s%d",String[6],
  337.                 String[4],String[5],TXL,String[4],TX);
  338.             if(DSave()) return(1);
  339.         }
  340.     }
  341.     if(helpW->MenuStrip)
  342.     {
  343.         if(MenuSource()) return(1);
  344.     }
  345.     if(helpW->CheckMark && CodeArt==0)
  346.     {
  347.         if(ImageSource(helpW->CheckMark,0)) return(1);
  348.     }
  349.     return(0);
  350. }
  351. USHORT WindowSource()
  352. {
  353.     while(helpW)
  354.     {
  355.         if(helpW->FirstRequest)
  356.         {
  357.             if(RequestSource()) return(1);
  358.         }
  359.         else
  360.         {
  361.             if(CodeArt==0)
  362.             {
  363.                 if(ExtraWin()) return(1);
  364.             }
  365.             if((Erlaubt & 2)==0)
  366.             {
  367.                 if(CodeArt)
  368.                 {
  369.                     if(ExtraWin())
  370.                         return(1);
  371.                 }
  372.             }
  373.             else
  374.             {
  375.         WI++;
  376.         StrEnd=0;
  377.         if(CodeArt==0)
  378.         {
  379.             sprintf(Buffer,"%s%s ",STR,String[1]);
  380.         }
  381.         MakeName(helpW->Name,WI,1);
  382.         if(CStart()) return(1);
  383.         if(WindowPos()) return(1);
  384.         StrEnd=1;
  385.         if(Byte(helpW->DetailPen,helpW->BlockPen)) return(1);
  386.         AssT(2);
  387.         j=0;
  388.         for(i=0; i<23; i++)
  389.         {
  390.             if(helpW->IDCMPFlags & WIDCMP[i]) PIDCMP();
  391.         }
  392.         if(j)
  393.         {
  394.             if(KomTab()) return(1);
  395.         }
  396.         else if(Null(1)) return(1);
  397.         StrEnd=0;
  398.         AssT(2);
  399.         j=0;
  400.         if((helpW->Flags & 0x00c0)==0)
  401.         {
  402.             InBuff(WFLAGS1[0]);
  403.             j=1;
  404.         }
  405.         for(i=0; i<16; i++)
  406.         {
  407.             if(helpW->Flags & WFLAGS[i])
  408.             {
  409.                 Plus();
  410.                 InBuff(WFLAGS1[i]);
  411.             }
  412.         }
  413.         if(j)
  414.         {
  415.             if(KomTab()) return(1);
  416.         }
  417.         else if(Null(1)) return(1);
  418.         if(GadgetZeiger()) return(1);
  419.         if(helpW->CheckMark)
  420.         {
  421.             AssT(2);
  422.             KUnd();
  423.             i=IM;
  424.             if(CodeArt) i++;
  425.             InLeer(10,i);
  426.             if(BuffKom()) return(1);
  427.         }
  428.         else if(Null(1)) return(1);
  429.         if(strlen(helpW->Title))
  430.         {
  431.             AssT(2);
  432.             if(CodeArt)
  433.             {
  434.                 MakeName(helpW->Name,WI,1);
  435.                 InBuff(String[7]);
  436.             }
  437.             else
  438.             {
  439.                 if(Compiler) InBuff(CType[2]);
  440.                 SetByte(helpW->Title);
  441.             }
  442.             if(KomTab()) return(1);
  443.         }
  444.         else if(Null(1)) return(1);
  445.         if(Null(1)) return(1);
  446.         if(Null(1)) return(1);
  447.         if(Word(helpW->MinWidth,helpW->MinHeight)) return(1);
  448.         if(Word(helpW->MaxWidth,helpW->MaxHeight)) return(1);
  449.         AssT(1);
  450.         InBuff(SFLAGS1[SType]);
  451.         if(LSave()) return(1);
  452.         if(CodeArt)
  453.         {
  454.             if(strlen(helpW->Title))
  455.             {
  456.                 MakeName(helpW->Name,WI,1);
  457.                 InBuff(String[7]);
  458.                 Tab();
  459.                 AssT(0);
  460.                 SetByte(helpW->Title);
  461.                 KommaNull(3);
  462.                 if(DSave()) return(1);
  463.             }
  464.             else if(LSave()) return(1);
  465.             if(ExtraWin()) return(1);
  466.         }
  467.         else
  468.         {
  469.             CEnde();
  470.             if(DSave()) return(1);
  471.         }
  472.         }
  473.         }
  474.         helpW=helpW->NextWindow;
  475.     }
  476.     return(0);
  477. }    
  478.  
  479. USHORT TFontSource()
  480. {
  481.     i=0;
  482.     if(helpT->Font==2) i++;
  483.     if(helpT->Font>0 && ZS[(i*16)+helpT->Style] == 0)
  484.         if(FontSource(helpT->Font,helpT->Style)) return(1);
  485.     return(0);
  486. }
  487. USHORT TextSource(struct MyText *t,UBYTE mo)
  488. {
  489.     if(mo)
  490.     {
  491.         if((Erlaubt & 4)==0) return(2);
  492.     }
  493.     helpT=t;
  494.     if(CodeArt==0)
  495.     {
  496.         while(helpT->NextText)
  497.             helpT=helpT->NextText;
  498.     }
  499.     while(helpT)
  500.     {
  501.         TX++;
  502.         if(CodeArt==0)
  503.         {
  504.             if(TFontSource()) return(1);
  505.         }
  506.         StrEnd=0;
  507.         if(CodeArt==1 && mo==1)
  508.         {
  509.             if(helpT==t)
  510.             {
  511.                 sprintf(Buffer,"%s%s%d:",String[4],String[5],TXL);
  512.                 if(LSave()) return(1);
  513.             }
  514.         }
  515.         if(CodeArt==0)
  516.         {    
  517.             sprintf(Buffer,"%s%s%s ",STR,String[3],String[4]);
  518.         }
  519.         sprintf(LEER,"I%s%d",String[4],TX);
  520.         BuffLeer();
  521.         if(CStart()) return(1);
  522.         if(Byte(helpT->FrontPen,helpT->BackPen)) return(1);
  523.         AssT(0);
  524.         j=0;
  525.         for(i=1; i<4; i++)
  526.         {
  527.             if(helpT->DrawMode & DMode[i])
  528.             {
  529.                 Plus();
  530.                 if(CodeArt) InBuff("RP_");
  531.                 InBuff(DRAW[i]);
  532.             }
  533.         }
  534.         if(j==0)
  535.         {
  536.             if(CodeArt) InBuff("RP_");
  537.             InBuff(DRAW[0]);
  538.         }
  539.         SetKomma();
  540.         if(CodeArt) Nuller(0);
  541.         Tab();
  542.         if(Save()) return(1);
  543.         if(Word(helpT->LeftEdge,helpT->TopEdge));
  544.         if(helpT->Font)
  545.         {
  546.             AssT(2);
  547.             KUnd();
  548.             sprintf(LEER,"ZS%d_%d",helpT->Font,helpT->Style);
  549.             if(BuffKom()) return(1);
  550.         }
  551.         else if(Null(1)) return(1);
  552.         AssT(2);
  553.         if(CodeArt)
  554.         {
  555.             sprintf(LEER,"I%s%s%d",String[4],String[4],TX);
  556.             BuffLeer();
  557.         }
  558.         else
  559.         {
  560.             if(Compiler) InBuff(CType[2]);
  561.             SetByte(helpT->IText);
  562.         }
  563.         if(KomTab()) return(1);
  564.         if(helpT->NextText)
  565.         {
  566.             AssT(2);
  567.             KUnd();
  568.             i=TX-1;
  569.             if(CodeArt) i += 2;
  570.             sprintf(LEER,"I%s%d",String[4],i);
  571.             BuffLeer();
  572.             if(LSave()) return(1);
  573.         }
  574.         else if(Null(0)) return(1);
  575.         if(CodeArt)
  576.         {
  577.             sprintf(Buffer,"I%s%s%d:",String[4],String[4],TX);
  578.             Tab();
  579.             AssT(0);
  580.             SetByte(helpT->IText);
  581.             KommaNull(1);
  582.             AssT(3);
  583.         }
  584.         else CEnde();
  585.         if(DSave()) return(1);
  586.         if(CodeArt)
  587.         {
  588.             if(TFontSource()) return(1);
  589.             helpT=helpT->NextText;
  590.         }
  591.         else helpT=helpT->Parent;
  592.     }
  593.     return(0);
  594. }
  595. USHORT FontSource(UBYTE fo,UBYTE s)
  596. {
  597.     i=fo-1;
  598.     ZS[(i*16)+s]=1;
  599.     StrEnd=0;
  600.     if(CodeArt==0)
  601.     {
  602.         sprintf(Buffer,"%s%sAttr ",STR,String[4]);
  603.     }
  604.     sprintf(LEER,"ZS%d_%d",fo,s);
  605.     BuffLeer();
  606.     if(CStart()) return(1);
  607.     AssT(2);
  608.     if(CodeArt) InBuff(DEFS[10]);
  609.     else
  610.     {
  611.         InBuff(CType[0]);
  612.         SetByte(FontName);
  613.         Komma();
  614.     }
  615.     Tab();
  616.     if(Save()) return(1);
  617.     AssT(1);
  618.     if(i) InBuff("TOPAZ_SIXTY");
  619.     else InBuff(FONT[1]);
  620.     if(KomTab()) return(1);
  621.     AssT(0);
  622.     j=0;
  623.     for(i=0; i<4; i++)
  624.     {
  625.         if(s & FStyle[i+1])
  626.         {
  627.             Plus();
  628.             InBuff(FStyle1[i+1]);
  629.         }
  630.     }
  631.     if(j==0) Nuller(0);
  632.     if(KomTab()) return(1);
  633.     AssT(0);
  634.     Nuller(0);
  635.     LineFeed();
  636.     if(CodeArt)
  637.     {
  638.         if(ZSN==0)
  639.         {
  640.             ZSN=1;
  641.             InBuff(DEFS[10]);
  642.             DPunkt();
  643.             InBuff(AType[0]);
  644.             HTab();
  645.             SetByte(FontName);
  646.             KommaNull(3);
  647.         }
  648.     }
  649.     else CEnde();
  650.     if(DSave()) return(1);
  651.     return(0);
  652. }
  653. VOID DoubleFeed()
  654. {
  655.     LineFeed();
  656.     if(CodeArt==1 || (CodeArt==0 && Kompact==1) || StrEnd==1)
  657.         LineFeed();
  658. }
  659. VOID LineFeed()
  660. {
  661.     UBYTE LOK=1;
  662.     if(CodeArt==0 && Kompact==0 && StrEnd==0) LOK=0;
  663.     if(LOK) InBuff(ZCode[0]);
  664. }
  665. VOID Tab()
  666. {
  667.     LineFeed();
  668.     HTab();
  669. }
  670. VOID HTab()
  671. {
  672.     UBYTE LOK=1;
  673.     if(CodeArt==0 && Kompact==0 && StrEnd==0) LOK=0;
  674.     if(LOK) InBuff(ZCode[1]);
  675. }
  676. VOID AssT(UBYTE n)
  677. {
  678.     if(CodeArt)
  679.     {        
  680.         InBuff(AType[n]);
  681.         HTab();
  682.     }
  683. }
  684. USHORT Word(SHORT w1,SHORT w2)
  685. {
  686.     AssT(1);
  687.     sprintf(LEER,"%d,%d",w1,w2);
  688.     if(BuffKom()) return(1);
  689.     return(0);
  690. }
  691. USHORT Byte(BYTE b1,BYTE b2)
  692. {
  693.     AssT(0);
  694.     sprintf(LEER,"%d,%d",b1,b2);
  695.     if(BuffKom()) return(1);
  696.     return(0);
  697. }
  698. USHORT Null(UBYTE k)
  699. {
  700.     AssT(2);
  701.     SetNull();
  702.     if(k) Komma();
  703.     if(k) Tab();
  704.     else LineFeed();
  705.     if(Save()) return(1);
  706.     return(0);
  707. }
  708. VOID SetNull()
  709. {
  710.     if(CodeArt) Nuller(0);
  711.     else InBuff(ZCode[7]);
  712. }
  713. VOID Komma()
  714. {
  715.     if(CodeArt==0) SetKomma();
  716. }
  717.  
  718. USHORT KomTab()
  719. {
  720.     Komma();
  721.     Tab();
  722.     if(Save()) return(1);
  723.     return(0);
  724. }
  725.  
  726. USHORT Save()
  727. {
  728.     time=0;
  729.     if(CodeArt==0 && Kompact==0 && StrEnd==0)
  730.     {
  731.         CodeSize+=strlen(Buffer);
  732.         if(CodeSize >= 65)
  733.         {
  734.             CodeSize=0;
  735.             InBuff(ZCode[0]);
  736.             InBuff(ZCode[1]);
  737.         }
  738.     }
  739.     else CodeSize=0;
  740.     if(write=Write(Datei,Buffer,strlen(Buffer)) != strlen(Buffer))
  741.         time++;
  742.     strcpy(Buffer,"");
  743.     return(time);
  744. }
  745.  
  746. USHORT PaletteSource(USHORT *map,USHORT anz)
  747. {
  748.     UBYTE line=0;
  749.     USHORT n=0;
  750.     StrEnd=1;
  751.     if(CodeArt==0) sprintf(LEER,"%s%s%d[]",CType[5],String[19],SC);
  752.     else InLeer(19,SC);
  753.     BuffLeer();
  754.     if(CStart()) return(1);
  755.     AssT(1);
  756.     while(n < anz)
  757.     {
  758.         HexCode(map[n]);
  759.         line++;
  760.         n++;
  761.         if(line==8)
  762.         {
  763.             if(n < anz)
  764.             {
  765.                 if(KomTab()) return(1);
  766.                 AssT(1);
  767.                 line=0;
  768.             }
  769.         }
  770.         else
  771.         {
  772.             if(n < anz) SetKomma();
  773.         }
  774.     }
  775.     if(CodeArt==0)
  776.     {
  777.         LineFeed();
  778.         CEnde();
  779.         DoubleFeed();
  780.         InBuff(String[6]);
  781.     }
  782.     else DoubleFeed();
  783.     InBuff("ANZAHL_FARBEN");
  784.     if(CodeArt) sprintf(LEER,"%d: %s %d",SC,ZCode[5],anz);
  785.     else sprintf(LEER,"%d %d",SC,anz);
  786.     BuffLeer();
  787.     if(DSave()) return(1);
  788.     return(0);
  789. }
  790.  
  791. VOID HexCode(USHORT zahl)
  792. {
  793.     strcpy(LEER,"0x0000");
  794.     i=2;
  795.     if(CodeArt)
  796.     {
  797.         strcpy(LEER,"$0000");
  798.         i=1;
  799.     }
  800.     LEER[i]=Hex[(zahl & 0xF000) >> 12];
  801.     LEER[i+1]=Hex[(zahl & 0x0F00) >> 8];
  802.     LEER[i+2]=Hex[(zahl & 0x00F0) >> 4];
  803.     LEER[i+3]=Hex[zahl & 15];
  804.     BuffLeer();
  805. }
  806. VOID BuffLeer()
  807. {
  808.     InBuff(LEER);
  809. }
  810.